/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.edu.ufcg.boombox.controller;

import br.edu.ufcg.boombox.controller.listener.FotoPerfilMouseListener;
import br.edu.ufcg.boombox.util.Formatadores;
import br.edu.ufcg.boombox.view.PaginaInicialBoomBoxView;
import br.edu.ufcg.boombox.view.SelecionadorDeImagensView;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import javax.swing.filechooser.FileNameExtensionFilter;

/**
 *
 * @author Targaryen
 */
public class PaginaInicialBoomBoxController implements ActionListener, Inicializavel {

    private PaginaInicialBoomBoxView paginaInicialBoomBoxView;
    private SelecionadorDeImagensView selecionadorDeImagens;
    
    //outros listeners
    private MouseListener fotoPerfilMouseListener; 
    
    public PaginaInicialBoomBoxController(PaginaInicialBoomBoxView paginaInicialBoomBoxView) {
        this.paginaInicialBoomBoxView = paginaInicialBoomBoxView;
        this.paginaInicialBoomBoxView.configuraOuvinte(this);
        this.fotoPerfilMouseListener = new FotoPerfilMouseListener(this);
        this.selecionadorDeImagens = new SelecionadorDeImagensView();
        this.selecionadorDeImagens.configuraOuvinte(this);
        FileNameExtensionFilter filter = new FileNameExtensionFilter(
        "JPG & GIF Images", "jpeg", "gif", "jpg");
        this.selecionadorDeImagens.setFileFilter(filter);
    }
    
    public void iniciarSelecionadorDeImagens() {
        this.paginaInicialBoomBoxView.setEnabled(false);
        this.selecionadorDeImagens.setVisible(true);
    }
    
    public MouseListener getFotoPerfilMouseListener() {
        return this.fotoPerfilMouseListener;
    }
    
    @Override
    public void actionPerformed(ActionEvent e) {
        switch (e.getActionCommand()) {
            case "janelasDePerfil":
                String estadoAtualDaJanela = this.paginaInicialBoomBoxView.getEstadoAtualDaJanela();
                if(estadoAtualDaJanela.equals("Início")){
                    System.out.println("Atualizando a página inicial");
                    this.paginaInicialBoomBoxView.atualizar();
                } else if(estadoAtualDaJanela.equals("Configurações")) {
                    System.out.println("Carregar a página de configuração...");
                } else if (estadoAtualDaJanela.equals("Sair")) {
                    this.paginaInicialBoomBoxView.dispose();
                    this.paginaInicialBoomBoxView.clear();
                    ContextoDaAplicacao.getInstance().logoff();
                    ContextoDaAplicacao.getInstance().getControlador("loginController").inicializar();
                }
            case "listarAmigos":
                //TODO ADICIONAR IMPLEMENTACAO
                break;
            case "listarFavoritos":
                //TODO ADICIONAR IMPLEMENTACAO
                break;
            case "localizarAmigos":
                //TODO ADICIONAR IMPLEMENTACAO
                break;
            case "minhasListas":
                //TODO ADICIONAR IMPLEMENTACAO
                break;
            case "pesquisar":
                //TODO ADICIONAR IMPLEMENTACAO
                break;
            case "todasMusicas":
                //TODO ADICIONAR IMPLEMENTACAO
                break;
            case "listaTopList":
                //TODO ADICIONAR IMPLEMENTACAO
                break;
            
                //selecionador de imagens
            case "cancelarImagem":
                this.paginaInicialBoomBoxView.setEnabled(true);
                this.selecionadorDeImagens.clear();
                this.selecionadorDeImagens.dispose();
                break;
            case "confirmarImagem":
                this.paginaInicialBoomBoxView.setEnabled(true);
                this.selecionadorDeImagens.dispose();
                ContextoDaAplicacao.getInstance().getUsuarioLogado().
                        setImagePerfil(Formatadores.
                        processaImagem(this.selecionadorDeImagens.getSelectedFile()));
                this.selecionadorDeImagens.clear();
                this.paginaInicialBoomBoxView.atualizar();
                break;
        }
        
    }

    @Override
    public void inicializar() {
        this.paginaInicialBoomBoxView.setVisible(true);
        this.paginaInicialBoomBoxView.atualizar();
        this.paginaInicialBoomBoxView.initLabelFotoPerfil(fotoPerfilMouseListener);
    }

    
    
}

